/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package administrador;
import java.io.File;
import java.io.FileFilter;

public class leeArchCarpeta {
    leeArchCarpeta(){}
    public java.util.Vector filtroArchivo(String fechaInicio,String fechaFin,String documento){
         java.util.Vector vecPrincipal=new java.util.Vector();
         java.util.Vector vectorRetorna=null;
         File archivos[]=getArchivos("./transaccionesErradas/","txt");
         String documentoFinal="";
         for(File file:archivos){
            String fechaArchivos=file.getName().substring(0,8);
            String horaArchivos=file.getName().substring(9,15);
            if(fechaArchivos.compareTo(fechaInicio)>=0  && fechaArchivos.compareTo(fechaFin)<=0 ){
                  java.util.Vector interno=new java.util.Vector();
                   for(int i=0;i<file.getName().length();i++){
                        String caracter=file.getName().substring(i+16,i+17);
                        if(caracter.equals("_")){
                            i=file.getName().length();
                        }else{
                            documentoFinal+=caracter;
                        }
                    }
                    if(documentoFinal.equals("Factura")&& documento.equals("Factura")){
                        interno.add(documentoFinal);
                        interno.add(formatofecha(fechaArchivos));
                        interno.add(formatoHora(horaArchivos));
                        interno.add(obtenCodigo(file.getName()));
                        vecPrincipal.add(interno);
                    }
                    else if(documentoFinal.equals("Nota de Venta")&& documento.equals("Nota de Venta")){
                        interno.add(documentoFinal);
                        interno.add(formatofecha(fechaArchivos));
                        interno.add(formatoHora(horaArchivos));
                        interno.add(obtenCodigo(file.getName()));
                        vecPrincipal.add(interno);
                    }else if(documentoFinal.equals("Nota de Credito")&& documento.equals("Nota de Credito")){
                        interno.add(documentoFinal);
                        interno.add(formatofecha(fechaArchivos));
                        interno.add(formatoHora(horaArchivos));
                        interno.add(obtenCodigo(file.getName()));
                        vecPrincipal.add(interno);
                    }else if(documentoFinal.equals("Nota de Debito")&& documento.equals("Nota de Debito")){
                        interno.add(documentoFinal);
                        interno.add(formatofecha(fechaArchivos));
                        interno.add(formatoHora(horaArchivos));
                        interno.add(obtenCodigo(file.getName()));
                        vecPrincipal.add(interno);
                    }
                    documentoFinal="";
            }
         }
         return vecPrincipal;
    }
    public String formatofecha(String fecha){
        String fechaEntrada="";
        for(int i=0;i<fecha.length();i++){
             String caracter=fecha.substring(i,i+1);
             fechaEntrada+=caracter;
             if(i==3 || i==5 ){
                 fechaEntrada+="-";
             }             
        }
        return fechaEntrada;
    }
    public String formatoHora(String hora){
        String horae="";
        for(int i=0;i<hora.length();i++){
             String caracter=hora.substring(i,i+1);
             horae+=caracter;
             if(i==1 || i==3 ){
                 horae+=":";
             }             
        }
        return horae;
    }
    public String obtenCodigo(String path){
        String codigo="";
        for(int i=path.length()-5;i>=0;i--){
            String caracter=path.substring(i,i+1);
            if(caracter.equals("_")){
                 i=0;
            }else{
                codigo+=caracter;
            }
        }
        String definitivo="";
        for(int i=codigo.length()-1;i>=0;i--){
            String caracter=codigo.substring(i,i+1);
            definitivo+=caracter;
        }
        return definitivo;
    }
    public  File[] getArchivos(String nomDirectorio, String extension ) {
        try {
            File dir = new File( nomDirectorio );
            return dir.listFiles( new FiltroArchivos(extension));
        }
        catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }
}
class FiltroArchivos implements FileFilter {
    private String extension;

    public FiltroArchivos( String extension ) {
        this.extension = extension;
    }
    public boolean accept(java.io.File f) {
        if (!f.isDirectory()) {
            String name = f.getName().toLowerCase();
            return name.endsWith( extension );
        }
        return false;
    }
}
